Tổng hợp 15 lệnh Tar phổ biến nhất nên dùng trong Linux
Biết và sử dụng lệnh Tar giúp bạn lưu trữ, di chuyển các file từ máy tính này sang máy tính khác dễ dàng hơn. Dưới đây là 15 lệnh Tar phổ biến nhất nên dùng trong Linux mà bạn nên tham khảo.
Đôi khi người dùng cần đóng gói nhiều file và/hoặc thư mục vào một file duy nhất. Sẽ dễ dàng hơn nếu chuyển một file qua mạng và thậm chí là tất cả các file trong USB (nhưng càng nhiều file thì việc chuyển sẽ càng bị chậm). Trên các hệ điều hành như Windows, điều này thường được thực hiện bằng cách lưu trữ vào các file .zip hoặc .rar. Trên các hệ điều hành *nix, chẳng hạn như Linux, tiện ích thường dùng là tar. Tên của lệnh này xuất phát từ Tape ARchive, vì ban đầu nó được thiết kế để sao lưu dữ liệu trên băng từ. Ngày nay, nó vẫn có thể được sử dụng cho mục đích này, nhưng trong hầu hết các trường hợp, nó chỉ đơn giản là phương pháp tạo ra “tarball”. Mục đích của tarball là để tạo điều kiện upload, download và di chuyển dữ liệu hoặc giữ bản sao lưu.
Tham khảo hướng dẫn cách sử dụng tar
Mỗi lệnh trong Linux có một trang hướng dẫn. Bạn có thể tham khảo hướng dẫn sử dụng tar bằng cách nhập lệnh sau vào terminal:
man tar
Xem qua phần nội dung bằng cách sử dụng các phím mũi tên, PAGE UP và PAGE DOWN. Nhấn q để thoát khỏi hướng dẫn.
Tạo thư mục Tarball
Tạo thư mục với 9 tệp trống để có thể kiểm tra các lệnh tar:
mkdir $HOME/test9 && touch $HOME/test9/{1..9}
Bây giờ chuyển sang thư mục chính:
cd
Để chuyển nội dung của một thư mục đến một file tar:
tar -cvf test.tar test9
c - Là viết tắt của “create” v - Verbose, xuất ra file hiện đang được thêm vào kho lưu trữ; hữu ích cho các tác vụ cần nhiều thời gian và kiểm tra được tiến độ f - Thông báo cho tiện ích tạo file tar, với tên được chỉ định là test.tar
Thêm nội dung vào một Tarball hiện có
Tạo một thư mục khác với các file trống có tên được sắp xếp từ a đến z:
mkdir $HOME/test-az && touch $HOME/test-az/{a..z}
Bây giờ, thêm nó vào kho lưu trữ tar đã có (tham số r):
tar -rvf test.tar test-az
Nếu mở test.tar trong trình quản lý lưu trữ đồ họa, bạn sẽ thấy nội dung sau.
Danh sách nội dung của file tar
Sử dụng flag -t để liệt kê nội dung của file tar.
tar -tf test.tar
Trích xuất nội dung từ Tarball
Nội dung sẽ được trích xuất trong thư mục hiện tại. Tạo một thư mục mới và sau đó chuyển nội dung sang đó:
mkdir $HOME/test-extract && cd $HOME/test-extract
Bây giờ giải nén test.tar trong thư mục hiện hành:
tar -xvf $HOME/test.tar
Tạo Tarball nén (gzip)
Nếu có ý định chuyển file tar qua mạng, làm dung lượng của nó nhỏ hơn sẽ là ý tưởng tuyệt vời để tăng tốc độ truyền. Thay đổi trở lại thư mục chính.
cd
Và tạo một file tar nén:
tar -cvzf test.tar.gz test9
Như có thể thấy, sự khác biệt duy nhất là tham số z được thêm vào nhằm hướng dẫn tar sử dụng gzip để nén file.
Tạo Tarball nén nhỏ hơn (bzip)
Thay vì tham số z, người dùng có thể sử dụng j để nén bằng bzip.
tar -cvjf test.tar.bz test9
Điều này sẽ tiếp tục giảm kích thước file nhưng mất nhiều thời gian hơn để nén và giải nén.
Trích xuất một file hoặc thư mục
Chỉ cần thêm tên chính xác của file hoặc thư mục, như nó xuất hiện trong kho lưu trữ tar:
tar -xvf test.tar test9/7
Điều này chỉ trích xuất file test9/7.
Chỉ trích xuất các file/thư mục phù hợp với một mẫu
Nếu bạn muốn trích xuất tất cả các file kết thúc bằng phần mở rộng .jpg:
tar -xvf test.tar --wildcards '*.jpg'
Bảo toàn các quyền truy cập
Quyền truy cập không quan trọng khi tạo tarball từ tài liệu, hình ảnh và các file media tương tự. Nhưng nếu đang sao lưu hệ thống, bạn có thể thêm tham số p để duy trì quyền truy cập file:
tar -cvpf test-allow.tar test9
Xóa tệp hoặc thư mục khỏi Tarball
Chỉ hoạt động trên các file tar không nén.
tar -f test.tar --delete test-az
Thao tác này sẽ xóa thư mục test-az khỏi tarball, bao gồm các file chứa trong đó:
tar f test.tar --delete test-az/z sẽ chỉ xóa file test test-az/z.
Loại trừ các file hoặc thư mục khỏi bị thêm vào Tarball
tar -cvf test-exclude.tar --exclude test9/9 test9
Như có thể thấy, file 9 đã bị loại khỏi kho lưu trữ tar. Có thể thêm nhiều tham số loại trừ:
tar cvf test-exclude.tar --exclude test9/9 --exclude test9/8 test9
Ở trong một hệ thống file
--one-file-system có thể được thêm vào trong một lệnh như:
tar -cvpzf backup.tar.gz --one-file-system /
Điều này sẽ sao lưu hệ thống file gốc, ngoại trừ các hệ thống file khác mà bạn có thể đã mount trong /home, /mnt, /media, /proc, v.v...
Bảo toàn các thuộc tính mở rộng
Bên cạnh quyền truy cập file, một số bản phân phối Linux cũng có các thuộc tính file mở rộng. Để bảo toàn tất cả chúng, hãy thêm các tham số sau: --acls --selinux --xattrs.
Lệnh ví dụ:
tar -cvpzf backup.tar.gz --one-file-system --acls --selinux --xattrs /
Tạo thư mục mới cho các file được giải nén
Thông thường, tar sẽ trích xuất vào thư mục hiện tại của người dùng. Có thể sử dụng mkdir new_directory và cd new_directory trước khi sử dụng tar, nếu thư mục muốn giải nén không tồn tại. Nhưng hướng dẫn tar làm mọi thứ cho bạn sẽ tốt hơn:
tar -xvf test.tar --one-top-level=new_directory
Đây là những lệnh tar được sử dụng phổ biến nhất. Nhưng tiện ích này . Nếu không thích đọc hướng dẫn trong terminal, có thể tìm phiên bản HTML của hướng dẫn tar để dễ đọc hơn.
Trên đây là tổng hợp những lệnh Tar phổ biến nhất mà bạn nên dùng trong Linux vì rất linh hoạt hơn nữa lại có thể được sử dụng theo nhiều cách khác nhau.